home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / answers / Objective-C / classes < prev    next >
Encoding:
Internet Message Format  |  1993-06-16  |  22.7 KB

  1. Path: senator-bedfellow.mit.edu!enterpoop.mit.edu!gatech!howland.reston.ans.net!noc.near.net!uunet!mcsun!sun4nl!tuegate.tue.nl!viper.es.ele.tue.nl!viper.es.ele.tue.nl!tiggr
  2. From: tiggr@es.ele.tue.nl (Tiggr)
  3. Newsgroups: comp.lang.objective-c,comp.answers,news.answers
  4. Subject: comp.lang.objective-c FAQ, part 2/3: Classes
  5. Supersedes: <classes_740305123@es.ele.tue.nl>
  6. Followup-To: comp.lang.objective-c
  7. Date: 17 Jun 1993 08:23:34 GMT
  8. Organization: Eindhoven University of Technology, the Netherlands
  9. Lines: 519
  10. Approved: news-answers-request@mit.edu
  11. Message-ID: <classes_740305413@es.ele.tue.nl>
  12. Reply-To: tiggr@es.ele.tue.nl (Tiggr)
  13. NNTP-Posting-Host: viper.es.ele.tue.nl
  14. Summary: This second part of the comp.lang.objective-c FAQ postings
  15.         gives an overview of available class libraries.
  16. Originator: tiggr@viper.es.ele.tue.nl
  17. Xref: senator-bedfellow.mit.edu comp.lang.objective-c:1312 comp.answers:1031 news.answers:9504
  18.  
  19. Archive-name: Objective-C/classes
  20. Version: $Id: classes,v 1.4 1993/06/17 08:08:56 tiggr Exp $
  21.  
  22.                Objective C
  23.             A matter of Class
  24.  
  25.    A (very incomplete) listing of available Objective-C classes
  26.  
  27. This is the second of three FAQ postings for comp.lang.objective-c.  This
  28. part lists classes available in the following environments or from the
  29. following sources:
  30.  
  31.     Stepstone        ICpak libraries
  32.     NeXT            several kits
  33.     GNU            classes released under the GPL
  34.     Public Domain        generally available classes---no GPL
  35.     NeXT 3rd party        commercially (or not) available
  36.                 classes for NeXTSTEP.
  37.  
  38. ===========================
  39. Stepstone Classes/Libraries
  40. ===========================
  41.  
  42.   Bundled with the compiler is ICpak 101 - Foundation Class Library
  43.         (20 classes, more than 300 methods)
  44.   Object                object - the runtime 'root' object'
  45.     Array               array - an abstract class
  46.       IdArray           id array - array of objects
  47.       IntArray          integer array
  48.     AsciiFiler          ASCII filer - an automatic I/O object
  49.     Cltn                collection - an abstract class
  50.       OrdCltn           ordered collection
  51.       Stack             LIFO collection
  52.       Set               Set collection - no duplicate members
  53.         Dictionary      associations - a la symbol tables
  54.     BalNode             balanced node - support for binary trees
  55.       SortCltn          sorted collection
  56.     String              string - null terminated ASCII sequence
  57.     Point               point - 2D coordinate
  58.     Rectangle           rectangle - 2D region
  59.     Assoc               association - key/value pairs support for dictionaries
  60.     IPSequence          in-place sequence - for sequencing through cltn
  61.       Sequence          sequence - same as above but uses copy of data
  62.     ObjGraph            object graph - graph of objects reachable
  63.     Unknown             unknown - support for AsciiFiler
  64.  
  65.   available separately for most systems, ICpak 201 - Graphical User Interface
  66.         (58 classes, more than 1100 methods)
  67.  
  68.   *Object*
  69.     IntCltn
  70.       IntOrdCltn
  71.     PtrCltn
  72.       PtrOrdCltn
  73.     TransCltr
  74.       OpaqCltr
  75.     *Array*
  76.       ColorArray
  77.         ColorMap
  78.       ShortArray
  79.       PtrArray
  80.     RubberLine
  81.     EventQ
  82.     CharString
  83.     Quad
  84.       RectList
  85.       DispObject
  86.         SolidColor
  87.         DispText
  88.         DispMedium
  89.           [****] ....
  90.         Pattern
  91.         Cursor
  92.       EchoBox
  93.     Font
  94.     Menu
  95.       DepMenu
  96.       AdHocMenu
  97.     Timer
  98.     DepObject
  99.     SharObject
  100.  
  101.   available for several platforms, ICpak 301 - GRAPHpak
  102.  
  103.   [****]
  104.  
  105.  
  106.  
  107. =======================
  108. GNU distributed classes
  109. =======================
  110.  
  111.   [****]
  112.  
  113.  
  114. =====================
  115. Public Domain classes
  116. =====================
  117.  
  118.     Random Class (sonata.cc.purdue.edu:/pub/next/oop/classes/Random2.0.tar.Z)
  119.         - implements its own random number generator, supports Gaussian
  120.           variables, die rolling, etc.
  121.  
  122.     Julian Date (sonata.cc.purdue.edu:/pub/next/oop/classes/Julian1.1.tar.Z)
  123.     - implements Julian dates, conversions, etc.  (NeXTSTEP)
  124.  
  125.   [****]
  126.  
  127.  
  128. ========================
  129. NeXT distributed Classes
  130. ========================
  131.  
  132. + == only in NeXTSTEP Release 3 (may follow kit name for all objects in kit)
  133.  
  134. Root Class
  135. ==========
  136. Object                    the root class
  137.  
  138.  
  139. Common Classes
  140. ==============
  141. Some classes of general utility, that don't belong to any kit.
  142.  
  143. *Object*
  144.   Storage                 object that stores a list of items (various types)
  145.   List                    object that stores a list of other objects
  146.   HashTable               key-based storage object
  147.     StreamTable           used for writing sets of data to streams
  148.     NXStringTable         stores a set of strings accessible by key
  149.  
  150. Application Kit (AppKit)
  151. ========================
  152. The first kit, used for implementing the framework and user interface of
  153. (nearly) every NeXTSTEP application.  Provides an engine that handles
  154. the event loop, connection to the Window Server, and handles many standard  
  155. services. Includes classes for user controls, font and color management, a
  156. text editor, a dynamic data link system (release 3), inter-application
  157. communication, and several standard panels.
  158.  
  159. *Object*
  160.   Responder               abstract class for objects that respond to events
  161.     Application           an application's "engine"; handles event loop & more
  162.     Window                manages an independent drawing area on the screen
  163.       Panel               special subclass of Window
  164.         Menu              manages array of command items that can be picked
  165.           PopUpList       pop-up list of items that can be picked
  166.         FontPanel         std Panel for selecting Fonts
  167.         PrintPanel        std printing Panel:choose printer, resolution, etc
  168.         PageLayout        std page layout Panel
  169.         SavePanel         std save Panel
  170.           OpenPanel       std open Panel
  171.         NXColorPanel      std color-picker Panel
  172.         NXHelpPanel +     std help Panel
  173.         NXDataLinkPanel + std Panel for managing dynamic data links
  174.     View                  manages a drawing area within a Window
  175.       Control             abstract class for UI objects (buttons, etc)
  176.         NXBrowser         hierarchical browser of items (like a filesystem)
  177.         Matrix            manages a group of Cells (eg, a set of radio buttons)
  178.           Form            a Matrix of FormCells (text entry areas with titles)
  179.         Button            your basic push-button doodad
  180.         TextField         displays text or allows the user to edit it
  181.         Slider            slide its knob to change its value
  182.         Scroller          used for scrolling long documents
  183.         NXColorWell       used for representing a color selection
  184.       Text                std object for editing text (ascii or RTF)
  185.       Box                 used to group other Views in a box
  186.       NXSplitView         used for a pair of Views that share screen space
  187.       ScrollView          manages relation between a ClipView and Scrollers
  188.       ClipView            used for View that's larger than its onscreen area
  189.   Cell                    rubber-stamp class for drawing in a View
  190.     NXBrowserCell         used for the items in an NXBrowser
  191.     SelectionCell         performs some of NXBrowserCell's functionality (obs)
  192.     ActionCell            used with Controls (or a set with a Matrix)
  193.       FormCell            displays a title and a text-entry area in a Form
  194.       ButtonCell          used for drawing Buttons
  195.         MenuCell          used for drawing Menu items
  196.       TextFieldCell       used for drawing text-entry/display areas
  197.       SliderCell          used for drawing a slider bar
  198.   Pasteboard              used for cut/copy/paste and much, much, more
  199.   NXImage                 convenient image-drawer; handles much nitty detail
  200.   NXImageRep              abstract class used with NXImage for specific images
  201.     NXBitmapImageRep        NXImageRep for bitmaps (for example, TIFF)
  202.     NXEPSImageRep           NXImageRep for PostScrip images
  203.     NXCustomImageRep        NXImageRep for user-defined images
  204.     NXCachedImageRep        NXImageRep for already-rendered images
  205.   NXDataLink +            represents a dynamic data link in a document
  206.   NXDataLinkManager +     manages all the data links in a document
  207.   NXSelection +           represents the linked data in a source document
  208.   NXCursor                std object for displaying various cursors
  209.   Font                    object representing a PostScript font
  210.   FontManager             manages the Fonts in an application
  211.   NXColorPicker +         for creating a custom color picker in the color Panel
  212.   NXColorList +           manages a list of named colors (eg, Pantone(R))
  213.   PrintInfo               contains information about a print job
  214.   NXSpellChecker +        used to access spell-checking services
  215.   NXSpellServer +         allows 3rd party to provide a custom spell-checker
  216.   Speaker                 sends inter-application messages
  217.   Listener                receives inter-application messages
  218.   NXJournaler             records and plays back events and sounds
  219.  
  220. Video Class +(was in AppKit for Release 2)
  221. ===========
  222. Displays video input to a NeXTdimension board on screen.
  223.  
  224. *Object*
  225.   NXLiveVideoView         displays video input to a NeXTdimension board
  226.  
  227. Sound Kit
  228. =========
  229. The Sound Kit is a set of classes for managing sound in a NeXTSTEP application.
  230.  
  231. *Object*
  232.   Sound                   represents a single sound
  233.   *Responder*
  234.     *View*
  235.       SoundView           used to display and edit sounds
  236.       SoundMeter          used to indicate sound volume as it plays
  237.   NXSoundStream +         abstract class; manages a stream of sound data
  238.     NXPlayStream +          plays sound data on an NXSoundOut object
  239.     NXRecordStream +        records sound data from an NXSoundIn object
  240.   NXSoundDevice +         abstract class; represents a device (mic, speaker)
  241.     NXSoundIn +             represents sound input devices (microphones)
  242.     NXSoundOut +            represents sound output devices (speakers etc)
  243.  
  244. Music Kit
  245. =========
  246.  
  247. A large kit for music synthesis, which used to be NeXT's but is now
  248. maintained by CCRMA.  It is available by FTP from ccrma-ftp.stanford.edu.
  249. There are two packages:
  250.  
  251.     pub/MusicKit_3.1.pkg.tar
  252.         MusicKit class library, header files, documentation, programming
  253.         examples, and a suite of applications---7.38MB compressed.
  254.  
  255.     pub/MusicKitSource_3.1.pkg.tar
  256.         Source of the MusicKit Kit class library---5.5MB compressed.
  257.  
  258. *Object*
  259.   Note                    stores information about a musical event
  260.   Envelope                control musical attributes of Notes
  261.   Part                    ordered set of Notes than can be performed
  262.   Score                   set of Parts that make up a musical piece
  263.   ScorePerformer          plays each Part in a Score
  264.   ScoreRecorder           records a Score, Part by Part and Note by Note
  265.   Orchestra               manages a DSP to synthesize music
  266.   Conductor               controls the timing of a group of objects
  267.   Instrument              manages Notes in a performance
  268.     SynthInstrument         synthesizes its Notes on the DSP
  269.     PartRecorder            copies its notes onto a Part object
  270.     FileWriter              writes its notes to a file on disk
  271.     NoteFilter              modifies Notes and passes them on to other objects
  272.   Performer               abstract class; sends a sequence of notes in time
  273.     FilePerformer           performs music data from a file or stream
  274.       ScorefilePerformer      performs music data from a scorefile
  275.     PartPerformer           performs the Notes in a Part
  276.   NoteReceiver            used by Instruments to realize Notes from Performers
  277.   NoteSender              used by Performers to realize Notes on Instruments
  278.   TuningSystem            represents a musical tuning system
  279.   SynthData               represents DSP memory used in music synthesis
  280.   Midi                    provides and ObjC interfact to the MIDI driver
  281.   WaveTable               represents a period of sound as a series of samples
  282.     Samples                 builds WaveTable of recorded samples
  283.     Partials                builds WaveTable from sine wave components
  284.   PatchTemplate           used as part of a SynthPatch
  285.   SynthPatch              abstract class; represents a sound sythesis module
  286.     Pluck                   synthesizes the sound of a plucked string
  287.     Wave1                   WaveTable synthesis; 1 table
  288.     Wave1v                  WaveTable synth; 1 table with vibrato
  289.     Wave1i                  WaveTable synth; 1 table with freq interpolation
  290.     Wave1vi                 WaveTable synth; 1 table with both
  291.     DBWave1v                WaveTable synth; 1 table with vibrato
  292.     DBWave1i                WaveTable synth; 1 table with interpolation
  293.     DBWave2vi               WaveTable synth; 2 tables with both
  294.     Fm1                     Freq modulation synth; simple fm
  295.     Fm1i                    Freq mod synth; simple fm with freq interpolation
  296.     Fm1v                    Freq mod synth; simple fm with vibrato
  297.     Fm1vi                   Freq mod synth; simple fm with both
  298.     Fm2cvi                  Freq mod synth; Cascade fm
  299.     Fm2cnvi                 Freq mod synth; Cascade fm with random mod. (noise)
  300.     Fm2pvi                  Freq mod synth; Parallel fm
  301.     Fm2pnvi                 Freq mod synth; Parallel fm with noise
  302.   UnitGenerator             abstract class; building blocks of DSP synthesis
  303.     Add2UG                  Various types of UnitGenerators
  304.     AllPass1UG              ...
  305.     AsympUG
  306.     ConstantUG
  307.     DelayUG
  308.     DswitchtUG
  309.     DswitchUG
  310.     InterpUG
  311.     Mul1add2UG
  312.     Mul2UG
  313.     OnepoleUG
  314.     OnezeroUG
  315.     OscgafUG
  316.     OscgafiUG
  317.     UscgUG
  318.     Out1aUG
  319.     Out1bUG
  320.     Out2sumUG
  321.     ScaleUG
  322.     Scl1add2UG
  323.     Scl2add2UG
  324.     SnoiseUG
  325.     UnoiseUG
  326.  
  327. Database Kit (DBKit) +
  328. ======================
  329. Manages connections to entity-relationship database servers.  The Database kit
  330. includes these services: communication with client-server databases, modeling
  331. properties (attributes and relationships) of each database, record management
  332. and buffering, data flow between record managers and the application user
  333. interface, and user interface objects for display and editing.
  334.  
  335. *Object*
  336.   DBDatabase              represents a connection to a database server
  337.   DBExpression            encapsulates a database expression as an object
  338.   DBQualifier             represents cond. records must satisfy to be selected
  339.   DBValue                 stores a value of an arbitrary type
  340.   DBBinder                connects database items to ObjC objects
  341.   DBModule                maps database model entities to application objects
  342.   DBRecordStream          represents a sequence of fetched database records
  343.     DBRecordList            supports random access to a seq. of records
  344.   DBFetchGroup            manages DBRecordList data with UI presentation
  345.   DBAssocation            associates a property with a destination object
  346.   *Responder*
  347.     *View*
  348.       *Control*
  349.         DBImageView       displays an NXImage object in a frame
  350.       *ScrollView*
  351.         DBTableView       spreadsheet-like view for modifying tables of data
  352.   DBTableVector           represents a field in a DBTableView
  353.   DBFormatter             abstract class for formatting data
  354.     DBTextFormatter         quickly formats read-only text data
  355.     DBEditableFormatter     formats editable text data
  356.     DBImageFormatter        formats, scales, and aligns image data
  357.  
  358. Indexing Kit (IXKit) +
  359. ======================
  360. The Indexing Kit is a set of programmatic tools for managing data, especially
  361. the large amounts of data characteristic of information-intensive applications.
  362. Much as the Application Kit provides a framework for a graphical interface,
  363. the Indexing Kit provides a framework for data management.
  364.  
  365. *Object*
  366.   IXStore                 relocatable storage allocator/manager
  367.     IXStoreFile           disk-based IXStore
  368.   IXStoreBlock            "wrapper" for a single block of storage in an IXStore
  369.   IXStoreDirectory        allows access to objects in an IXStore by name
  370.   IXBTree                 associative (key-based) access to data in an IXStore
  371.   IXBTreeCursor           a pointer to an item in an IXBTree
  372.     IXPostingCursor       cursor that assumes data is sets of postings (below)
  373.   IXRecordManager         manages large indexed collections of data
  374.   IXPostingSet            manages a set of postings (refs to indexed records)
  375.   *List*
  376.     IXPostingList         lazily retrieves objects from postings
  377.   IXFileFinder            indexes and finds files with a general query language
  378.   IXFileRecord            represents a file in the filesystem
  379.   IXAttributeParser       parses text into lists of tokens
  380.   IXAttributeReader       breaks text into tokens
  381.     IXLanguageReader      abstract class; for tokenizing a specific language
  382.   IXWeightingDomain       represents frequency information about a set of text
  383.   IXAttributeQuery        processes a query against a conforming object
  384.  
  385. Mach Kit +
  386. ==========
  387. The Mach Kit provides a number of classes for convenient use of Mach mutexes,
  388. and a number of classes used by the Distributed Objects facility.
  389.  
  390. *Object*
  391.   NXData                  wrapper for (void *) data
  392.   NXLock                  object-oriented mutex lock
  393.   NXConditionLock         as above, but waits on a condition
  394.   NXRecursiveLock         as above, but same thread can acquire multiple times
  395.   NXSpinLock              as above, for use with short critical sections
  396.   NXProtocolChecker       restricts messaging access to remote objects
  397.   NXInvalidationNotifier  notifies clients when a connection breaks
  398.     NXPort                wrapper for a Mach port
  399.   NXNetNameServer         provides ObjC interface to NeXT's NetNameServer
  400.  
  401. Distributed Objects Facility +
  402. ==============================
  403. The Distributed Objects facility allows a process to send messages to objects
  404. in the address space of a different process.  For all practical purposes, the
  405. remote object exists in the sending process.  Nearly any message can be sent,
  406. and many data types, including other objects can be sent and received
  407. "across the wire."
  408.  
  409. NXProxy                   a "root" class that represents a remote object
  410. *Object*
  411.   NXConnection            manages a connection between remote objects
  412.  
  413. Phone Kit +
  414. ===========
  415. The Phone Kit offers an easy way for a developer to connect an application to
  416. a telephone line, to initiate and receive calls over the line, and to transmit
  417. and receive data during a call.  The phone line must be attached to the user's
  418. computer, or to a computer on the user's network, through a Hayes ISDN
  419. Extender(R) or an equivalent device.
  420.  
  421. *Object*
  422.   NXPhone                 represents a phone line connected to the computer
  423.   NXPhoneCall             represents/manages a connection over a phone line
  424.   NXPhoneChannel          represents a channel within a connection
  425.  
  426. 3D Graphics Kit (3DKit) +
  427. =========================
  428. The 3D Kit uses RenderMan to create 3D scenes, much as the Application Kit
  429. uses the PostScript language to draw 2D graphics.  It also provides for
  430. animation and real-time manipulation of rendered scenes.
  431.  
  432. *Object*
  433.   *NXImageRep*
  434.     N3DRIBImageRep        NXImageRep for RenderMan RIB data
  435.   *Responder*
  436.     *Window*
  437.       *Panel*
  438.         N3DRenderPanel    std Panel for selecting hosts to render scene on
  439.     *View*
  440.       N3DCamera           renders a single 3D scene
  441.         N3DMovieCamera    rederes a sequence of 3D scenes, providing animation
  442.   N3DShape                abstract class representing a single 3D "object"
  443.     N3DLight              represents a source of light in a scene
  444.   N3DShader               handles surface shading/texturing/coloring
  445.   N3DRotator              rotates/moves a 3D scene in various ways
  446.   N3DContextManager       manages rendering contexts for an application
  447.  
  448. NetInfo Kit (NIKit) +
  449. =====================
  450. These are all standard panels for accessing NetInfo information.  Strangely,
  451. most aren't subclasses of Panel.
  452.  
  453. *Object*
  454.   NIDomain                represents a NetInfo domain
  455.   NIDomainPanel           std panel for selecting a NetInfo domain
  456.     NIOpenPanel           std panel for opening an item in a domain
  457.       NISavePanel         std panel for saving info for a domain
  458.   *Responder*
  459.     *Window*
  460.       *Panel*
  461.         NILoginPanel      used, for example, to authorize root access to run an  
  462. app
  463.  
  464. Interface Builder Applicaton Classes (IB Classes) +
  465. ===================================================
  466. These classes allow developers to expand the functionality of the 
  467. Interface Builder application, creating their own palettes of objects
  468. that can be dragged into an interface, and inspectors to set and view
  469. the attributes of those objects.
  470.  
  471. *Object*
  472.   IBInspector             defines a custom Interface Builder inspector
  473.   IBPalette               connects a loadable palette to Interface Builder
  474.  
  475. Preferences Application Classes +
  476. =================================
  477. These classes allow developers to add their own modules to the Preferences
  478. application.
  479.  
  480. *Object*
  481.   Layout                  represents a Preferences module's layout view
  482.  
  483. Workspace Manager Application Classes +
  484. =======================================
  485. These classes allow developers to add their own file contents inspectors to
  486. the Workspace Manager application.
  487.  
  488. *Object*
  489.   WMInspector             represents a Workspace contents inspector
  490.  
  491.  
  492.  
  493. =================================================
  494. 3rd Party Class Libraries, many are NeXT specific
  495. =================================================
  496.  
  497.   [many others - NeXT now publishes an _Object Works_ Catalogue, which
  498.     tells of available classes]
  499.  
  500.   BarCodeKit - an object library for creating bar codes in PostScript and
  501.                 TIFF formats.  (Hot Technologies, (617) 252-0088, info@hot.com)
  502.  
  503.   ChooserPalette - a selection list manager
  504.                 (Objective Technologies, (212) 227 6767)
  505.  
  506.   GraphPalette - tools for graphing data in custom apps
  507.                 (Objective Technologies, (212) 227 6767)
  508.  
  509.   GeoKit - objects that perform map rendering
  510.                 (Deltos Fleet Computing, (214) 540-2301)
  511.  
  512.   InetObjects - objects for TCP and UDP sessions and application
  513.                   protocols such as telnet and ftp
  514.                 (Zippytech (412) 421-9588 ztech@well.sf.ca.us)
  515.  
  516.   MathPalette - tools for interfacing with Mathmatica
  517.                 (Objective Technologies, (212) 227 6767)
  518.  
  519.   SmartFieldPalette - supplies data input fields that restrict and format
  520.                 input, report errors, and notify the user of field content
  521.                 (Objective Technologies, (212) 227 6767)
  522.  
  523.   Serial Solutions from BenaTong - Object wrappers for the UNIX ioctls, Modem
  524.         support and MagCard/BarCode reader support.
  525.         (BenaTong (614) 276-7850 benatong@count0.cmhnet.org)
  526.  
  527.   SerialPortKit - generic serial port object, modem object, specific bar
  528.         code readers, magnetic stripe card readers and other serial
  529.         devices. (Hot Technologies, (617) 252 0088, info@hot.com)
  530.  
  531. The first version of this FAQ was written by Bill Shirly, helped by the
  532. feedback and information given to him by a lot of people.  The current
  533. version is maintained by Tiggr, aided by information provided by Glen Diener
  534. (short list!).  Mail your bug reports, comments, suggestions and additions
  535. to tiggr@es.ele.tue.nl.
  536. -- 
  537. --Tiggr
  538.